package org.example;

import javafx.application.Platform;
import javafx.scene.image.ImageView;

public class ImageOperationHandler {
    private ImageView imageView;
    // 用于记录图片缩放比例，初始为1（即原始大小）
    private double scaleFactor = 1;

    public ImageOperationHandler(ImageView imageView) {
        this.imageView = imageView;
    }

    // 用于放大图片的方法
    public void zoomIn() {
        scaleFactor *= 1.2;  // 每次放大1.2倍，可根据需求调整倍数
        Platform.runLater(() -> {
            if (imageView.getImage()!= null) {
                imageView.setFitWidth(imageView.getImage().getWidth() * scaleFactor);
                imageView.setFitHeight(imageView.getImage().getHeight() * scaleFactor);
            }
        });
    }

    // 用于缩小图片的方法
    public void zoomOut() {
        if (scaleFactor > 0.1) {  // 限制最小缩放比例，避免过度缩小导致异常，可调整此值
            scaleFactor *= 0.8;  // 每次缩小0.8倍，可根据需求调整倍数
            Platform.runLater(() -> {
                if (imageView.getImage()!= null) {
                    imageView.setFitWidth(imageView.getImage().getWidth() * scaleFactor);
                    imageView.setFitHeight(imageView.getImage().getHeight() * scaleFactor);
                }
            });
        }
    }

    // 用于重置图片缩放比例为原始大小的方法（可关联到重置视图功能）
    public void resetView() {
        scaleFactor = 1;
        Platform.runLater(() -> {
            if (imageView.getImage()!= null) {
                imageView.setFitWidth(imageView.getImage().getWidth());
                imageView.setFitHeight(imageView.getImage().getHeight());
            }
        });
    }
}